package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 物料订单对象 w_order
 *
 * @author ruoyi
 * @date 2022-01-07
 */
@Data
@ApiModel(value = "WOrder", description = "物料订单对象 w_order")
public class WOrder extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @ApiModelProperty(value = "${comment}")
    private Long id;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty(value = "订单编号")
    private String orderSn;

    /** 客户ID */
    @Excel(name = "客户ID")
    @ApiModelProperty(value = "客户ID")
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /** 公司ID 也是部门id */
    @Excel(name = "公司ID 也是部门id")
    @ApiModelProperty(value = "公司ID 也是部门id")
    private Long deptId;

    /** 公司名称 */
    @Excel(name = "公司名称")
    @ApiModelProperty(value = "公司名称")
    private String deptName;

    /** 产品名称 */
    @Excel(name = "产品名称")
    @ApiModelProperty(value = "产品名称")
    private String productName;

    /** 产品数量 */
    @Excel(name = "产品数量")
    @ApiModelProperty(value = "产品数量")
    private Long productNumber;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date deliveryTime;
    

    /** 订单状态  1待来料  2待生产  3生产中  4已完成 5已取消 */
    @Excel(name = "订单状态  1待来料  2待生产  3生产中  4已完成 5已取消")
    @ApiModelProperty(value = "订单状态  1待来料  2待生产  3生产中  4已完成 5已取消")
    private Integer orderStatus;

    /** 生产开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "生产开始时间")
    private Date productStart;

    /** 可生成产品数量 */
    @Excel(name = "可生成产品数量")
    @ApiModelProperty(value = "可生成产品数量")
    private Long canNumber;

    /** 生成结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生成结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "生成结束时间")
    private Date productEnd;

    /** 总良品产品数量 */
    @Excel(name = "总良品产品数量")
    @ApiModelProperty(value = "总良品产品数量")
    private Long goodNumber;

    /** 总不良品产品数量 */
    @Excel(name = "总不良品产品数量")
    @ApiModelProperty(value = "总不良品产品数量")
    private Long badNumber;
    
    

    public void setId(Long id){
        this.id = id;
    }

    public Long getId(){
        return id;
    }
    public void setOrderSn(String orderSn){
        this.orderSn = orderSn;
    }

    public String getOrderSn(){
        return orderSn;
    }
    public void setCustomerId(Long customerId){
        this.customerId = customerId;
    }

    public Long getCustomerId(){
        return customerId;
    }
    public void setCustomerName(String customerName){
        this.customerName = customerName;
    }

    public String getCustomerName(){
        return customerName;
    }
    public void setDeptId(Long deptId){
        this.deptId = deptId;
    }

    public Long getDeptId(){
        return deptId;
    }
    public void setDeptName(String deptName){
        this.deptName = deptName;
    }

    public String getDeptName(){
        return deptName;
    }
    public void setProductName(String productName){
        this.productName = productName;
    }

    public String getProductName(){
        return productName;
    }
    public void setProductNumber(Long productNumber){
        this.productNumber = productNumber;
    }

    public Long getProductNumber(){
        return productNumber;
    }
    public void setDeliveryTime(Date deliveryTime){
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime(){
        return deliveryTime;
    }
    public void setOrderStatus(Integer orderStatus){
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus(){
        return orderStatus;
    }
    public void setProductStart(Date productStart){
        this.productStart = productStart;
    }

    public Date getProductStart(){
        return productStart;
    }
    public void setCanNumber(Long canNumber){
        this.canNumber = canNumber;
    }

    public Long getCanNumber(){
        return canNumber;
    }
    public void setProductEnd(Date productEnd){
        this.productEnd = productEnd;
    }

    public Date getProductEnd(){
        return productEnd;
    }
    public void setGoodNumber(Long goodNumber){
        this.goodNumber = goodNumber;
    }

    public Long getGoodNumber(){
        return goodNumber;
    }
    public void setBadNumber(Long badNumber){
        this.badNumber = badNumber;
    }

    public Long getBadNumber(){
        return badNumber;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderSn", getOrderSn())
            .append("customerId", getCustomerId())
            .append("customerName", getCustomerName())
            .append("deptId", getDeptId())
            .append("deptName", getDeptName())
            .append("productName", getProductName())
            .append("productNumber", getProductNumber())
            .append("deliveryTime", getDeliveryTime())
            .append("orderStatus", getOrderStatus())
            .append("productStart", getProductStart())
            .append("canNumber", getCanNumber())
            .append("productEnd", getProductEnd())
            .append("goodNumber", getGoodNumber())
            .append("badNumber", getBadNumber())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
